A variety of computer systems and electronic devices use memory that is not volatile, or does not lose its content when power is disconnected. These nonvolatile memories can be reprogrammed, read, and erased electronically, and are particularly well suited to storing information such as music in digital audio players, pictures in digital cameras, and configuration data in cellular telephones. Such memory is commonly known as flash memory, named in part because a flash operation is used to erase the content of a block of data before it is reprogrammed, and is packaged for consumer use in products such as CompactFlash memory cards, USB flash memory drives, and other such devices.
Flash memory comprises a number of cells, each of which typically stores a single binary digit or bit of information. A typical flash memory or nonvolatile memory cell comprises a field effect transistor having an electrically isolated floating gate that controls electrical conduction between source and drain regions of the memory cell. Data is represented by a charge stored on the floating gate, and the resulting conductivity observed between the source and drain regions.
The floating gate resides in an insulating material between a second gate known as a control gate and the channel region of the memory cell. Electrons stored on the floating gate insulated from the control gate and the drain and source by an insulating oxide layer partially cancel out or modify an electric field provided via a voltage signal applied the control gate, resulting in a change in the effective threshold voltage (Vt) of the memory cell. When the memory cell is read by placing a specified voltage on the control gate, the electrical impedance between the source and drain of the device will either allow or not allow current to flow, depending on the presence of a charge on the floating gate and the effective Vt or threshold voltage of the memory cell. The presence or absence of current above a threshold level is sensed, and used to determine the state of the memory cell, resulting in a one or zero value being read.
Memory cells are typically arranged in a two-dimensional array of rows and columns, where the rows are coupled via a wordline conductor and the columns are coupled via a bitline conductor. The wordline and bitline conductors are used during data read and write functions to either select certain wordlines for reading or to select words and bits for writing.
The memory cells themselves are further subject to the resistance and capacitance of the bitlines and wordlines coupled to the memory cell for proper operation and communication with a memory controller. Device features, such as variation in the oxide layer thickness between the floating gate and the conduction region between the source and drain can also cause variation in the threshold voltage and other operating parameters of such a flash memory cell. Also, close physical proximity of memory cells in the memory array can result in coupling between floating gates, further influencing the operation of the memory cells.
For these and other reasons, there is a need for methods and devices to operate and program nonvolatile memory devices.